package com.baichang.taoshunda.dao;


import com.baichang.framework.dao.BaseDao;
import com.baichang.framework.excelption.DBException;
import com.baichang.framework.model.Page;
import com.baichang.taoshunda.entity.City;

import java.util.List;
import java.util.Map;

/**
 * Created by ${wushenglu} on 2017/7/27 0027.
 */
public interface CityDao extends BaseDao<City> {


    /**
     * 接口获取热门城市
     *
     * @return
     */
    List<Map<String, Object>> getHotCity();

    /**
     * 接口获取城市
     *
     * @param parentId 父级编号（预留，现在用不到）
     * @param key      关键字
     * @return
     */
    List<Map<String, Object>> getCityList(int parentId, String key);

    /**
     * 根据上级编号获取城市信息
     *
     * @param parentId 上级编号
     * @return
     */
    List<Map<String, Object>> getDeliveryCityByParentId(int parentId);

    /**
     * 热门城市列表
     */
    Page<Map<String, Object>> queryHotCity(int nowPage, int pageSize) throws DBException;

    /**
     * 修改排序
     */
    public int update(int sorting, int id) throws DBException;

    /**
     * 查询该城市下面有没有其它的城市
     */
    int findCategoryBySuperId(int id) throws DBException;

    /**
     * 删除一个城市 （逻辑删除）
     */
    int deleteCity(int id) throws DBException;

    /**
     * 查询是否有同名的城市
     */
    int querySameCity(int id, String cityName) throws DBException;

    /**
     * 修改城市名称
     */
    boolean updateCityName(int id, String cityName) throws DBException;

    /**
     * 后台查询城市
     */
    Page<City> queryAllCity(int nowPage, int pageSize, int parentId, int isHot, String name) throws DBException;


    List<City> queryName(String name);

    /**
     * 修改城市信息
     */
    int update(Map<String, Object> map, int id) throws DBException;

    /**
     * 查询热门城市的个数
     */
    int hotCityCount() throws DBException;

    /**
     * 获取城市
     *
     * @param deptPath
     * @return
     */
    List<Map<String, Object>> queryByCityId(Integer cityId, Integer deptPath);

    /**
     * 判断该parentId下面是否有重名的城市名   querySameName
     */
    List<City> querySameName(String name, Long parentId, int id) throws DBException;

    /**
     * 根据省id获取市
     *
     * @param id
     * @return
     */
    List<Map<String, Object>> queryCityIdInfo(Integer id);

    /**
     * 根据城市编号获取城市信息
     *
     * @param cityId 城市编号
     * @return
     */
    City getCityById(Integer cityId);
    /**
     *
     * @param cityName
     * @return
     */
    int getCityIdByCityName(String cityName);

    /**
     * 查询省级名字
     * @param parentId
     * @return
     */
    Map<String,Object> getCityInfo(Long parentId);
    /**
     * 获取城市编号
     *
     * @param cityName
     * @param level
     * @return
     */
    int getCityIdByName(String cityName, Integer level);
}
